//package scau.mis4.chanyulin.web.user;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.*;
//import scau.mis4.chanyulin.base.common.BaseController;
//import scau.mis4.chanyulin.base.utils.PasswordHelper;
//import scau.mis4.chanyulin.entity.user.FsUser;
//import scau.mis4.chanyulin.service.user.IUserService;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
//import java.util.*;
//
///**
// * Created by cyl.
// */
//@Controller
//@RequestMapping("/user")
//public class UserController extends BaseController {
//
//    @Autowired
//    private IUserService userService;
//
//    /* -------------------------------------------- 普通登录注册 -------------------------------------------- */
//
//    /**
//     * 验证账号是否已存在
//     * @param username
//     * @return
//     */
//    @GetMapping("/check_username")
//    @ResponseBody
//    public String getCheckUsername(String username) throws Exception {
//        if (username == null || username.equals("")) {
//            return createErrorJSON("手机号码不能为空");
//        }
//        if (userService.findSelectPropertyWhereAnd("username", username).size() == 0) {
//            return createSuccessJSON("该手机可以注册");
//        } else {
//            // 该账号已被注册
//            return createErrorJSON("该账号已被注册");
//        }
//
//    }
//
//    /**
//     * 注册接口 确保手机号码和发送验证码的一致性
//     * 要求验证账号和密码的格式正确性
//     * 对密码加密 设置创建时间和账号的权限等级
//     *
//     * @param request
//     * @param phoneKey
//     * @return
//     */
//    @ResponseBody
//    @PostMapping("/add_user")
//    public String registerNewUser(HttpServletRequest request, FsUser fsUser, String phoneKey) throws Exception {
//        HttpSession session = request.getSession();
//        if (userService.findSelectPropertyWhereAnd("username", fsUser.getUsername()).size() == 1) {
//            return createErrorJSON("该账号已被注册");
//        }
//        String phoneKey2 = (String) session.getAttribute("phoneKey"); //取出发送的手机验证码
//        String phoneNumber = (String) session.getAttribute("phoneNumber"); //取出发送的手机号码
////        System.out.println("获取到的信息"+user.getUsername()+"~~"+user.getPassword()+"~~"+phoneKey+"存的"+phoneNumber+"~"+phoneKey2 );
//        if (!fsUser.getUsername().equals(phoneNumber) || !phoneKey2.equals(phoneKey)) {
//            //若验证码不正确 或者验证码不是对应发送的手机号码 则添加失败
//            return createErrorJSON("手机验证码错误");
//        }
//        if (fsUser.getUsername().matches("^[\\\\0-9]{11}$") && fsUser.getPassword().matches("^[\\\\a-zA-Z0-9-]{6,16}$")) {
//            // 满足格式要求  账号为11位手机号码  密码位6-16位英文数字
//            PasswordHelper.encryptPassword(fsUser); //加密
//            fsUser.setCreateTime(new Date());
//            fsUser.setRoleId("ef5269f637a711e7805600163e06c345");  // 账号权限等级
//            fsUser.setYbFlag(0); //非易班账号
//            fsUser.setUsable(1); //账号可用
//            userService.add(fsUser);
//            return createSuccessJSON("注册成功");
//        } else {
//            //格式错误 返回码4 非法参数
//            return createErrorJSON("格式有误，密码为6-16位英文数字");
//        }
//
//    }
//
//    /* -------------------------------------------- 用户信息修改 -------------------------------------------- */
//
//    /**
//     * 修改密码
//     *
//     * @param username
//     * @param password
//     * @param phoneKey
//     * @param request
//     * @return
//     */
//    @PostMapping("/update_pwd")
//    @ResponseBody
//    public String updatePwdByPhone(String username, String password, String phoneKey, HttpServletRequest request) throws Exception {
//        HttpSession session = request.getSession();
//        String phoneKey2 = (String) session.getAttribute("phoneKey");
//        String phoneNumber = (String) session.getAttribute("phoneNumber");
//        Map map = new LinkedHashMap();
//        if (!password.matches("^[\\\\a-zA-Z0-9-]{6,16}$") || !username.equals(phoneNumber)) {
//            return createErrorJSON("密码格式有误");
//        }
//        if (!phoneKey.equals(phoneKey2)) {
//            return createErrorJSON("手机验证码错误");
//        }
//        FsUser user = new FsUser();
//        user.setUsername(username);
//        user.setPassword(password);
//        PasswordHelper.encryptPassword(user); //加密
//        userService.updateSelectProperties(user, "username", username);
//        return createSuccessJSON("修改成功");
//    }
//
//}